The present invention relates to a method and a device for matching two images, each consisting of a plurality of pixels and having partially overlapping contents, the degree of correspondence between the images being determined for different displacement positions which represent different overlappings of the images.
The applicant has developed a pen by means of which text can be recorded by the pen being passed over the text which is to be recorded. The pen, which includes, inter alia, a two-dimensional light-sensitive sensor and a signal-processing unit, records images of the text with partially overlapping contents. Subsequently, the images are put together to form a larger image, which does not contain any redundant information. The characters in the image are identified with the aid of OCR software and are stored in character-coded form in the pen. The pen is described in the applicant""s Swedish Patent Application No. 9604008-4, which had not been published when the present application was filed.
In order to reduce the memory requirement of the pen, it is desirable that it be possible to put together a recorded image with the previous image before the next image is recorded. A desired image-recording frequency for the pen is about 50 Hz, which thus means that it shall be possible to put together two images in about 20 ms. The most time-consuming operation when putting the images together is the matching of the images, i.e. determining the relative position in which the best possible correspondence between the contents of the images is obtained.
A possible method for matching two images is to examine all possible overlap positions between the images and, for each overlap position, to examine every pair of overlapping pixels, to determine a score for each pair of overlapping pixels, the score depending on how well the values of the pixels correspond, and to then determine which overlap position provides the best match on the basis of the total of the scores for the overlapping pixels in each position. However, this procedure is too slow for the application indicated above.
In the light of the above, one object of the present invention is thus to provide a new method for automatic matching of two images, which method permits faster matching of two images with a given processor than the method described above.
A further object is to provide a device for the implementation of the method.
The objects are achieved by a method according to claim 1 and a device according to claims 18 and 19. Preferred embodiments are stated in the subclaims.
Like the method described above, the invention is based on determining the degree of correspondence between two images, which each consists of a plurality of pixels and which have partially overlapping contents, for different displacement positions representing different overlappings of the images. However, the comparison of the contents of the images is effected in a more efficient manner. More specifically, a plurality of numbers are determined for each one of a plurality of displacement positions, each number being formed with the aid of pixel values from both images. The numbers are used to retrieve predefined overlap assessment values for at least two displacement positions simultaneously. These overlap assessment values are subsequently used in determining the degree of correspondence between the contents of the images.
By this method, the different displacement positions can be examined with a certain degree of parallelism, making it possible to examine the images more quickly than if all the displacement positions are examined sequentially. This parallelism is achieved with the aid of the numbers, which are used to examine at least two displacement positions simultaneously. Since the numbers are based on the contents of each image, it is possible to calculate in advance the overlap assessment values in the cases where the pixel values which make up the numbers overlap completely or partially. Naturally, the efficiency of the method increases the more pixels are included in each number since this increases the parallelism.
Thus, the overlap assessment values are predefined. What this means is that if a pixel in one of the images has a first given value and the corresponding overlapping pixel in the other image has a second given value, a certain predetermined overlap value is always obtained. The same applies when the overlap assessment values relate to several overlapping pixels. The different overlap assessment values which are obtained for different combinations of pixel values can be determined optionally. They can be defined with the aid of one or more formulae, or tables, or in some other suitable manner.
In this connection, it should be pointed out that, of course, the images are not physically displaced in relation to each other when the method is being implemented, but rather the comparison between the images is carried out for hypothetical displacements.
In a preferred embodiment, the method furthermore comprises the steps of adding up the overlap assessment values for each of said displacement positions, and of using the totals obtained in this manner to determine which of the displacement positions provides the best possible match between the contents of the images. The overlap assessment values which are added together for a certain displacement position preferably reflect the degree of correspondence between all overlapping pixels for that displacement position.
In order further to increase the matching speed, the overlap assessment values are suitably added up in parallel for several displacement positions. The adding-up becomes particularly advantageous if it is carried out in parallel for the overlap assessment values which are retrieved simultaneously with the aid of a number.
Each overlap assessment value can relate to one or more overlapping pixels. In the latter case, a matching speed increase is achieved by the fact that it is not necessary to add up the assessment values for each overlapping pixel for a certain displacement position, but rather overlap assessment values which have already been added up for two or more overlapping pixels can be retrieved directly.
When the displacement position which provides the best match between the contents of the images has been determined, the images can be put together in this relative position. The putting-together can be effected by the overlapping pixel values in one of the images being rejected or, preferably, by a combined weighting of the pixel values for each overlapping pixel.
The plurality of displacement positions for which numbers are determined can suitably constitute rough displacement positions, and said at least two displacement positions for which the overlap assessment values are retrieved can suitably comprise at least one fine displacement position, representing a smaller displacement from a rough displacement position than the displacement between two rough displacement positions. The second overlap assessment value retrieved can relate to the rough displacement position in question or to another fine displacement position.
In the simplest embodiment of the method, the contents of the images are displaced in relation to each other in one direction only. However, the method can also be employed when the images are displaced in two different, preferably perpendicular, directions in relation to each other. In this case, in order to arrive at the position in which the correspondence between the contents of the images is at a maximum, it is suitable to let the rough displacement positions represent different overlappings of the images in the first direction, for example horizontally, and to repeat the method for different overlappings of the images in the other direction, for example vertically.
The rough displacement positions, which thus constitute a subset of the displacement positions examined, are preferably determined by the images being divided into a plurality of rough segments consisting of Nxc3x97M pixels where N and M are greater than one, the displacement between the two adjoining rough displacement positions consisting of a rough segment. The rough segments can thus be achieved by the images being divided into columns or rows, each having the width and the height of several pixels.
The images can be represented in various ways. They can be analogue, but it is preferable that they be digital since this facilitates their processing with the aid of a computer. The pixel values can be represented with different resolutions. However, the method is preferably intended for images which are represented as bitmaps.
As mentioned above, the numbers are based on the contents of the two images. In a preferred embodiment the numbers are used as addresses for memory locations, which store the overlap assessment values. In this case, the latter are suitably defined by quite simply being calculated or determined in advance.
Preferably, the addresses are used for addressing a lookup table which, for each address, contains said pre-calculated overlap assessment values for at least two displacement positions. The order in which the pixels values are used in the address is of no importance as long as the same order is used for all addresses and as long as the storing of the overlap assessment values in the lookup table is carried out in a predetermined manner in relation to said order.
The method according to the invention can be implemented entirely in hardware. In that case, the numbers can, for example, form input signals for a gate circuit which has been designed in such a way that for each given set of input signals the corresponding overlap assessment values are produced as output signals. Thus, in this case, the overlap assessment values are defined by the design of the gate circuit. This method can be advantageous for large images.
However, in a preferred embodiment, the method is implemented in software with the aid of a processor which works with a predetermined word length. In this case, the lookup table comprises a plurality of addressable rows, each of which has the predetermined word length and stores the pre-calculated overlap assessment values. By adjusting the width of the table to the word length of the processor, the best possible utilisation of the capacity of the processor is obtained. For example, different rows in the table can be added up in an efficient manner.
The various parameters for the method, i.e. the rough displacement positions, the number of overlap assessment values stored for each address, the number of tables, etc., are suitably determined on the basis of the processor utilised and its cache memory in order to achieve the highest speed possible. Preferably, the parameters are chosen so that the two images and all of the pre-calculated overlap assessment values can be contained in the cache memory.
In a preferred embodiment, each number is formed by a first fine segment, which comprises at least two adjoining pixels values from the first image, and by a second fine segment, which overlaps the first fine segment and which comprises as many adjoining pixel values as the first fine segment from the second image, and a third fine segment, which comprises as many adjoining pixel values as the first fine segment from the second image and which overlaps the first fine segment in an adjacent displacement position for which the determination of a plurality of numbers is carried out, i.e. an adjacent rough displacement position. In this way, the number will include all pixel values which can overlap in a rough displacement position and in all fine displacement positions between this rough displacement position and the subsequent rough displacement position, as well as in this subsequent rough displacement position. Accordingly, it is possible to retrieve, with the number, pre-calculated overlap assessment values for all of these displacement positions.
In order to save memory space so that all necessary information can be stored in the cache memory of a processor and thus be quickly accessible, each address is advantageously divided into a first and a second subaddress, the first subaddress, which consists of the pixel values from the first and the second fine segment, being used to simultaneously retrieve overlap assessment values in a first table for overlapping pixels belonging to the first and the second fine segment, and the second subaddress, which consists of the pixel values from the first and the third fine segment, being used to simultaneously retrieve overlap assessment values in a second table for overlapping pixels belonging to the first and the third segment.
In this case, for each address, the first and the second table preferably store an overlap assessment value for each one of said at least two displacement positions, the sum of the two overlap assessment values for a first displacement position, which is retrieved with the first and second subaddresses of an address, constituting an overlap assessment value for all overlapping pixels of the first, the second, and the third fine segment for said first displacement position. The overlap assessment values are preferably stored in the same order with respect to the displacement positions for each address, so that they can be easily added up.
In order further to increase the matching speed, the degree of correspondence between the images is first determined with a first resolution of the images for selection of a plurality of displacement positions and subsequently with a second, higher resolution of the images for the displacement positions selected and adjoining displacement positions. In this way, it is possible to reject whole areas of the image which are not of interest for further examination.
More specifically, a device according to the invention has a processing unit which is adapted to implement a method according to any one of claims 1-17. The processing unit can be connected to a unit for recording images and can process the images in real time. The device exhibits the same advantages as the method described above, that is, it permits a quicker matching of the images.
In a preferred embodiment, the invention is implemented in the form of a computer program which is stored in a storage medium which is readable with the aid of a computer.
The method according to the invention can be used to examine all possible displacement positions or only a selection. For example, the displacement position in an earlier matching can be used to limit the number of positions which need checking.
The invention is applicable to all types of matching of images. It can be used when two images are to be matched in order to subsequently be put together in the position which affords the best correspondence between the contents of the images. It can also be used to match two images when one wishes to check how the images overlap. The invention is especially applicable when a high matching speed is required.